package com.android.binderserverclient1

class PracticeEF {
    inline fun <T, R> T.cLet(block: (T) -> R): R {
        return block(this)
    }

    inline fun <T> T.cAlso(block: (T) -> Unit): T {
        block(this)
        return this
    }

    inline fun <T> T.cApply(block: T.() -> Unit): T {
        block()
        return this
    }

    inline fun <T, R> cWith(receiver: T, block: T.() -> R): R {
        return receiver.block()
    }

    inline fun <R> cRun0(block:() -> R) : R {
        return block()
    }

    inline fun <T, R> T.cRun1(block: T.() -> R): R {
        return block()
    }
}